﻿package org.rkuk.kasutil.timeline.conditions
{
	import org.rkuk.kasutil.timeline.ITicker;
	import org.rkuk.kasutil.timeline.ITickInfo;
	import org.rkuk.kasutil.timeline.Timeline;
	
	/**
	 * 定义被注册到Timeline上的ITicker对象的刷新条件的接口
	 * @author rkuk
	 * @see		org.rkuk.kasutil.timeline.Timeline
	 * @see		org.rkuk.kasutil.timeline.ITicker
	 */
	public interface ITickerUpdateCondition 
	{
		/**
		 * 判断是否在currentTime时刻需要调用ITicker对象的updateTicker方法实现刷新
		 * @param	ticker		被调用updateTicker方法的ITicker对象
		 * @param	tickInfo	包含刷新时间和刷新步长信息的对象
		 * @return	true表示条件满足需要更新，false表示不需要更新
		 */
		/**
		 * 判断被注册到Timeline上的ITicker对象,在某个时刻是否满足被刷新的条件.
		 * 可以根据Timeline、ITicker和ITickInfo三个对象的具体状态来计算ITicker是否在此时需要刷新。
		 * @param	timeline	发出刷新信号的Timeline对象
		 * @param	ticker		可能将要被刷新的ITicker对象
		 * @param	tickInfo	Timeline发出刷新信号时的时间信息
		 * @return	true表示ITicker需要被刷新，false表示ITicker不需要被刷新
		 */
		function isNeedUpdate(timeline:Timeline,ticker:ITicker, tickInfo:ITickInfo):Boolean;
	}
	
}